home *** CD-ROM | disk | FTP | other *** search
- ≡≡
-
- Introduction
-
- Introduction
-
-
- The following information is supplied for use by anyone who may want to
- access the data structure of LASI drawings. LASI data files have two
- representations, internal and external. The information regarding
- internal data files is subject to change, and, be warned, any programs
- using it may need to be modified in the future. External format will
- remain consistent, or at most a conversion program will be supplied if
- modifications are made.
-
- Internal (DBD, BP4 and CL4) data files are optimized for fast access and
- are used by the program itself as it executes.
-
- Utilities may be written to operate on these files, but it may be
- somewhat more difficult due to the cell pointers used internally.
-
- External (TLC) files are ASCII files that contain cell references by name
- not pointer and data for objects in readable (and editable) ASCII.
- Transfer of cells between drawings can be more easily accomplished and
- utility programs can be more easily written when the external form is
- used.
-
- Internal Data Files
-
- Internal File Types
-
- A drawing consists of Drawing Basic Data files (.DBD extension) and a
- number of cell files (.BP4 and .CL4). The DBD files are the CELLS4.DBD,
- CONSTS4.DBD and FORM.DBD files. These are ASCII sequential files.
- CELLS4.DBD contains the information regarding the cells associated with a
- drawing. CONSTS4.DBD contains the preserved constants that set up a
- drawing, i.e. window sizes, scales, etc. FORM.DBD contains permanent
- setup information for a drawing.
-
- There is also a TXT.DBD file that is binary and contains the text font
- patterns. This has to be edited using the MAKETXT.EXE program. This file
- may have an arbitrary name. For more information on this file read Text
- Generation in the main LASI help.
-
- CELLS4.DBD file
-
- This is an ASCII sequential file consisting of the number of cells
- followed by 10-entry records for each cell.
-
-
- File Format:
-
- Number of Cells<nl>
-
- Cell 1 Record:
- Entry:
- 1= Name of cell<nl>
- 2= Rank of cell (1-15)<sp> (see below)
- 3= Left boundary of cell in basic units<sp>
- 4= Bottom boundary of cell in basic units<sp>
- 5= Right boundary of cell in basic units<sp>
- 6= Top boundary of cell in basic units<sp>
- 7= Number of boxes in cell<sp>
- 8= Number of poly in cell<sp>
- 9= Number of vertices in cell<sp>
- 10= Number of cells in cell<nl>
-
- Cell 2 Record: etc.,etc.,
-
- Notes:
-
- 1. Cells may be in any order. A cell with rank other than 1-15 is
- uneditable.
-
- 2. Pooled cells are marked with the 256-bit (100 hex) set to 1. Since
- pooled cells may have only a rank of 1, this number will always be
- 257 for a pooled cell.
-
- CONSTS4.DBD File
-
- The CONSTS4.DBD file is a nonessential file; if absent, it defaults to a
- standard configuration when the LASI program is started. When LASI is
- closed, a CONSTS4.DBD with the present configuration is written.
-
- It is possible for future versions of LASI to have different CONSTS4.DBD
- files, that is, compatibility is not guaranteed. In such case, deleting
- an old CONSTS4.DBD file and defaulting to the standard configuration at
- first will be necessary.
-
- It is expected that the first 3 entries (the version, the scale factor,
- and the physical units) will be unchanged, since they provide information
- to conversion utilities.
-
- File Format:
-
- The present CONSTS4.DBD file contains the following sequential ASCII data
- readable by a BASIC INPUT or a C scanf() function:
-
- The Version of LASI under which the file was made
- The Number of Basic Units per Physical Unit
- The Name of the Physical Unit
-
- A 64 character Color String with each character indicating the color
- of the layer (r=red etc.)
-
- 64 FILL numbers indicating which fills are to be used on the
- corresponding layer.
-
- 64 DASH numbers indicating which dashes are to be used on the
- corresponding layer.
-
- The Number of Working Grids
- All 10 Working Grids in basic units
-
- For Each of 15 Ranks:
- The Working Grid Number
- The Dot Grid
- The Grid Visibility Flag
- The Window Width, in basic units
- The Window Center X and Y Positions, in basic units
-
- Integer Constants:
-
- Layer Number for ADD
- Default Path Width
- Text Layer for ADD
- Default Text Size
- Drawing Resolution Number
- Number of Arc Segments
- Double Click Ticks
- Position Report Ticks
- Sort Backup Time
- Octo Flag
- Cell Outline Name Flag
- Path Center Line Flag
- Text Reference Flag
- Distance Marker Flag
- Fill with "0" to 16 entries
-
- Float Constants:
-
- The Maximum Number of Saved Windows (9)
- All Saved Window Widths, X Centers and Y Centers
- Text Spacing Ratio
- PSIZ Number
- Rotation Angle
- OVSZ Distance
- R Sheet Resistance
- C per Square
- R End Correction
- X Mickey Multiplier
- Y Mickey Multiplier
- Fill with "0" to 16 entries
-
- String Constants:
-
- For Each of 15 Ranks:
- VIEW Layers
- OPEN Layers
-
- Kind of Object to be ADDed ("B","P", or Name of Cell)
- Arc Add Direction (cw, ccw)
- Fill with "reserved" to 8 entries
- "end" (marker for short file read check)
-
- Cell Data Files
-
- There are two kinds of Cell Data Files, BP4 files and CL4 files. BP4
- files contain the boxes, poly and vertices of a cell. CL4 files contain
- the cells within the cell. All cells have BP4 files, but only if a cell's
- rank > 1 will one have a CL4 file.
-
- Both files are binary files. Each block of data records is read until a
- zero is encountered in the first record entry. (Actually a whole zero
- record is written to the files.) The box data records are placed first in
- a BP4 file, followed by the path data records, and finally by the vertex
- data records. This data structure allows any unknown cell file to be read
- into the drawing system without prior knowledge of the number or type of
- records.
-
- Notes:
-
- 1. In records, separator characters will be shown in < >.
- <nl>= newline (<cr><lf>)
- <sp>= space
-
- 2. Basic Units are the smallest unit of the 16-bit integers in which a
- drawing is maintained in the LASI data. Physical Units are the units
- in which you do a layout drawing (mil, um, etc.) These are related
- to the basic units by the Scale Factor.
-
- 3. Version numbers may contain alpha characters but the number must
- always begin with a numeric character.
-
- Box Data Structure
-
- Box data is kept in an array of structures with 5 integer members.
-
- Box Record Entries:
-
- 0 = Bits 0-7 , Layer Number (1-64)
- Bits 8-11 , Active Side Program Flags (Cleared in File)
- Bits 12-13 , Unused Flags (Cleared in File)
- Bit 14, Program Out of Window Flag (Cleared in File)
- Bit 15, Unused (Cleared in File)
-
- active side
- | | | |
- x x x x|x x x x|x x x x|x x x x
- | | | | | | | | |
- owb <--- layer --->
- (out of window bit)
-
- 1= Lower Left Corner X Position in basic units
-
- 2= Lower Left Corner Y Position
-
- 3= Upper Right Corner X Position
-
- 4= Upper Right Corner Y Position
-
- Path Data Structure
-
- Path data is kept in an array of structures with 3 integer members.
-
- A variation in the normal path data structure is used in Vers 4 to store
- path entities that expand as written text. The path record contains a
- marker bit and orientation bits. The first vertex record is a normal
- vertex record which locates the text in the drawing, however, the
- subsequent records contain ASCII character codes as explained below.
-
- Path Record Entries:
-
- 0 = Bits 0-7, Layer of Path (1-64)
- Bit 8, Path has 1 or more Active Vertices Flag (Cleared in
- File)
-
- Bits 9-15,
-
- If Normal Path:
- Program Flags (Cleared in File)
-
- else if Path Text:
- Bits 9-11, Orientation Bits (same as Cells)
- Bit 15 set indicates Path Text Record
-
- 0x3800 0x100
- oren active
- | | | |
- x x x x|x x x x|x x x x|x x x x
- | | | | | | | | | | | |
- | owb nop <--- layer --->
- text 0xFF
-
- 1= If Normal Path:
- Width of Path in basic units (0 indicates Poly)
-
- else if Path Text:
- Size of Path Text (size of character field)
-
- 2= Pointer to First Vertex of path in vertex array
-
- Vertex Data Structure
-
- Vertex data is kept in a array of structures with 4 integer members.
-
- Vertex Record Entries:
-
- 0 = Bits 0-12, Number of Path to which Vertex belongs
- Bit 13, Active Vertex Bit (Cleared in File)
- Bits 14-15,
-
- If Normal Paths:
- Program Flags (Cleared in File)
-
- else if Path Text:
- Bit 15 set indicates Path Text Character Record
-
-
- 0x4000
- active
- |
- x x x x|x x x x|x x x x|x x x x
- | | | | | | | | | | | | | | |
- | <----- path number ----->
- text vtx 0x3FFF
- 0x8000
-
- 1= If Normal Path:
- X Position of Vertex in basic units
-
- else if Path Text:
- Two bytes ASCII Character Code
-
- 2= If Normal Path:
- Y Position of Vertex in basic units
-
- else if Path Text:
- Two bytes ASCII Character Code
-
- 3= Pointer to next Vertex in Vertex Array
- (Zero for the Last Vertex of a Path)
-
- Cell Data Structure
-
- Cell data is kept in a 2-dimensional array of structures of 3 integer
- members. The added dimension is the depth of cell nesting, so that a
- parent cell remans loaded while lesser cells are loaded and drawn. In a
- CL4 file the nesting level is unnecessary, and the data is kept in a
- binary file following the same rules as the BP4 file but with the .CL4
- file extension.
-
- Cell Record Entries:
-
- 0 = Bits 0-9, Number of cell in CELLS4.DBD list
- Bit 10, Active Cell Flag (Cleared in File)
- Bits 11-13, Orientation (See Below)
- Bit 14, Draw Outline Flag
- Bit 15, Extended Flag (reserved for cell arrays)
-
- outl orien active
- | | | | |
- x x x x|x x x x|x x x x|x x x x
- | | | | | | | | | | |
- | <--- ref number -->
- |
- (reserved for cell array extended record)
-
- 1= X Position of Cell in basic units
-
- 2= Y Position of Cell in basic units
-
- Orientation:
- Bit 13, Cell is flipped in Y and then rotated
- Bits 12 and 11,
- 0= no rotation
- 1= 90 deg ccw rotation
- 2= 180 deg ccw rotation
- 3= 270 deg ccw rotation
-
- External Data Files
-
- Transportable Cells
-
- The external data file representation condenses the CELLS4.DBD, BP4 and
- CL4 files into one representation, thus making cells transportable. The
- files have the extension .TLC (Transportable LASI Cell). TLC files can be
- easily read by BASIC, PASCAL, or C.
-
- Each Cell has its own TLC file. This means that a TLC file may not really
- contain all the information to construct a cell if it has lesser cells
- within it. In that case, the TLC files for the lesser cells will have to
- be present for conversion to internal form. When converting to external
- form, the program TLCOUT.EXE automatically makes the TLC files for lesser
- cells if they are not present in the MS-DOS directory. When conversion
- from external to internal is being done, the lesser cells are also made
- in internal form by the TLCIN.EXE conversion program if not already
- present.
-
-
- Important: RECORDS may be in ANY ORDER in a TLC file.
-
- Records in Detail
-
- Header Record: <nl>= carriage return + linefeed <sp>= space
-
- 1= "=H" (literal)<nl>
- 2= Name of Cell (DOS file name)<nl>
- 3= Version of LASI (literal)<nl>
- 4= Version of TLC (literal)<nl>
- 5= Basic Units per Physical Unit<nl>
- 6= Name of Physical Unit (literal)<nl>
- 7= Date of Cell Conversion (literal)<nl>
- 8= Time of Cell Conversion (literal)<nl>
- 9= Rank of Cell<sp>
- 10= Left Outline Boundary in basic units<sp>
- 11= Bottom Boundary in basic units<sp>
- 12= Right Boundary in basic units<sp>
- 13= Top Boundary in basic units<nl>
- 14= Number of Boxes<sp>
- 15= Number of Paths<sp>
- 16= Number of Vertices<sp>
- 17= Number of Cells<nl>
-
- Note: Versions must begin with a numeric character
-
- Cell Record Entries:
-
- 1= "=C" (literal)<nl>
- 2= Name of Lesser Cell<nl>
- 3= Orientation (see below)<sp>
- 4= X Position in basic units<sp>
- 5= Y Position in basic units<sp>
- 6= reserved (presently zero)<nl>
-
- Property Number: (0-15)
- 16 bit integer, all bits 0 except:
-
- Bit 4,
- 0= draw cell fully
- 1= draw cell outline
-
- Orientation:
- Bit 3,
- 0= cell not flipped
- 1= cell is flipped in Y before rotation
-
- Bits 2 and 1,
- 0,0 = no rotation
- 0,1 = 90 deg rotation CCW
- 1,0 = 180 deg rotation CCW
- 1,1 = 270 deg rotation CCW
-
- Box Record Entries:
-
- 1= "=B" (literal)<nl>
- 2= Layer of Box<sp>
- 3= X of Lower Left Corner in basic units<sp>
- 4= Y of Lower Left Corner in basic units<sp>
- 5= X of Upper Right Corner in basic units<sp>
- 6= Y of Upper Right Corner in basic units<nl>
-
- Path/Poly Record Entries:
-
- 1= "=P" (literal)<nl>
- 2= Layer of Path/Poly<sp>
- 3= Width in basic units<sp>
- 4= No. of Vertices in path/poly<nl>
- 5= Vertices in basic units in the form:
- X1<sp>Y1<sp>X2<sp>Y2<sp>X3<sp>Y3<sp>X4<sp>Y4<sp>X5<sp>Y5<nl>
- .......Xn-1<sp>Yn-1<sp>Xn<sp>Yn<nl>
-
- (Groups of 5 coordinates separated by <sp> ended by <nl>,
- always with <nl> after Last Coordinate Pair)
-
- Text Record Entries:
-
- 1= "=T" (literal)<nl>
- 2= Layer of Text<sp>
- 3= Size in basic units<sp>
- 4= No. of Vertices used by text (includes Ref Point)<sp>
- 5= Orientation 0-7 (same as cells)<nl>
- 6= X Ref Point in basic units<sp>
- 7= Y Ref Point in basic units<nl>
- 8= ASCII character text string<nl> (u/l case, up to 40 characters)
-